home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / prolog / brklyprl.lha / Emulator / Tests / nog.w < prev    next >
Encoding:
Text File  |  1989-04-14  |  2.9 KB  |  192 lines

  1. procedure  main/0
  2.  
  3. _558:
  4.     put_variable_x  X1,X1
  5.     execute_proc  generate_no_garbage/1
  6.  
  7.  
  8. procedure  generate_no_garbage/1
  9.  
  10. _967:
  11.     init  Y1
  12.     get_variable_y  Y2,X1
  13.     put_variable_y  Y3,X1
  14.     call  object/1,3
  15.     put_constant  &10000,X1
  16.     put_value_y  Y3,X2
  17.     put_value_y  Y2,X3
  18.     put_value_y  Y1,X4
  19.     call  link_copy/4,3
  20.     put_unsafe_value  Y3,X1
  21.     put_value_y  Y2,X2
  22.     put_unsafe_value  Y1,X3
  23.     execute_proc  dummy/3
  24.  
  25.  
  26. procedure  link_copy/4
  27.  
  28.     switch_on_term  _2007,_2008,_2008
  29. _2007:
  30.     try_me_else  _2018,4
  31. _2022:
  32.     get_constant  &0,X1
  33.     get_value_x  X3,X4
  34.     cut
  35.     proceed
  36. _2018:
  37.     trust_me_else  fail
  38. _2008:
  39.     get_variable_y  Y4,X1
  40.     get_variable_y  Y3,X2
  41.     get_variable_y  Y1,X4
  42.     get_list  X3
  43.     unify_variable_x  X2
  44.     unify_variable_y  Y2
  45.     put_value_y  Y3,X1
  46.     call  copy/2,4
  47.     put_variable_x  X1,X1
  48.     put_value_y  Y4,X2
  49.     put_constant  -,X3
  50.     put_constant  &1,X4
  51.     escape  is/4
  52.     put_value_y  Y3,X2
  53.     put_value_y  Y2,X3
  54.     put_value_y  Y1,X4
  55.     execute_proc  link_copy/4
  56.  
  57.  
  58. procedure  object/1
  59.  
  60. _2758:
  61.     get_list  X1
  62.     unify_variable_x  X1
  63.     get_cdr_list
  64.     unify_variable_x  X2
  65.     get_cdr_list
  66.     unify_variable_x  X3
  67.     unify_nil
  68.     get_list  X1
  69.     unify_constant  &1
  70.     get_cdr_list
  71.     unify_constant  &2
  72.     get_cdr_list
  73.     unify_constant  &3
  74.     unify_nil
  75.     get_list  X2
  76.     unify_constant  &4
  77.     get_cdr_list
  78.     unify_constant  &5
  79.     get_cdr_list
  80.     unify_constant  &6
  81.     unify_nil
  82.     get_list  X3
  83.     unify_constant  &7
  84.     get_cdr_list
  85.     unify_constant  &8
  86.     get_cdr_list
  87.     unify_constant  &9
  88.     unify_nil
  89.     proceed
  90.  
  91.  
  92. procedure  copy/2
  93.  
  94.     switch_on_term  _4254,_4255,_4254
  95. _4255:
  96.     try_me_else  _4265,2
  97. _4269:
  98.     get_value_x  X1,X2
  99.     call  _dummy_0/1,0
  100.     cut
  101.     proceed
  102. _4265:
  103.     retry_me_else  _4297
  104. _4301:
  105.     get_list  X1
  106.     unify_variable_x  X1
  107.     unify_variable_y  Y2
  108.     get_list  X2
  109.     unify_variable_x  X2
  110.     unify_variable_y  Y1
  111.     cut
  112.     call  copy/2,2
  113.     put_value_y  Y2,X1
  114.     put_value_y  Y1,X2
  115.     execute_proc  copy/2
  116. _4297:
  117.     trust_me_else  fail
  118. _4389:
  119.     get_variable_x  X4,X1
  120.     get_variable_x  X5,X2
  121.     put_value_x  X4,X1
  122.     put_variable_x  X2,X2
  123.     put_variable_x  X3,X3
  124.     escape  functor/3
  125.     put_value_x  X5,X1
  126.     escape  functor/3
  127.     put_value_x  X3,X1
  128.     put_value_x  X4,X2
  129.     put_value_x  X5,X3
  130.     execute_proc  copy/3
  131. _4254:
  132.     try  _4269,2
  133.     trust  _4389
  134.  
  135.  
  136. procedure  _dummy_0/1
  137.  
  138. _5077:
  139.     try_me_else  _5082,1
  140. _5086:
  141.     switch_on_term  _5090,fail,fail
  142.     fail
  143. _5090:
  144.     proceed
  145. _5082:
  146.     trust_me_else  fail
  147. _5116:
  148.     switch_on_term  fail,fail,fail
  149.     proceed
  150.  
  151.  
  152. procedure  copy/3
  153.  
  154.     switch_on_term  _6003,_6004,_6004
  155. _6003:
  156.     try_me_else  _6014,3
  157. _6018:
  158.     get_constant  &0,X1
  159.     cut
  160.     proceed
  161. _6014:
  162.     trust_me_else  fail
  163. _6004:
  164.     get_variable_y  Y3,X1
  165.     get_variable_y  Y2,X2
  166.     get_variable_y  Y1,X3
  167.     put_variable_x  X3,X3
  168.     escape  arg/3
  169.     put_value_x  X3,X1
  170.     put_variable_y  Y4,X2
  171.     call  copy/2,4
  172.     put_value_y  Y3,X1
  173.     put_value_y  Y1,X2
  174.     put_unsafe_value  Y4,X3
  175.     escape  arg/3
  176.     put_variable_x  X1,X1
  177.     put_value_y  Y3,X2
  178.     put_constant  -,X3
  179.     put_constant  &1,X4
  180.     escape  is/4
  181.     put_value_y  Y2,X2
  182.     put_value_y  Y1,X3
  183.     execute_proc  copy/3
  184.  
  185.  
  186. procedure  dummy/3
  187.  
  188. _6608:
  189.     proceed
  190.  
  191.  
  192.